package com.jy.adscm.zltx.service;

import com.jy.adscm.bean.system.JyUser;
import com.jy.adscm.exception.AdscmSystemException;
import com.jy.adscm.zltx.bean.JyDrawingAuditing;
import com.jy.adscm.zltx.bean.JyDrawingEditInfo;
import com.baomidou.mybatisplus.service.IService;
import com.jy.adscm.zltx.mapper.mysql.JyDrawingEditInfoMapper;
import com.jy.adscm.zltx.mapper.mysql.JyDrawingListMapper;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

/**
 * <p>
 * 图纸修订记录 服务类
 * </p>
 *
 * @author zyl
 * @since 2018-10-26
 */
public interface JyDrawingEditInfoService extends IService<JyDrawingEditInfo> {

    /**
     * 新增图纸修订记录
     * @param jyDrawingEditInfo
     * @throws AdscmSystemException
     */
    void addAuditingEditInfo(JyDrawingEditInfo jyDrawingEditInfo) throws AdscmSystemException;

    /**
     * 审核修订记录（单审，已废弃）
     * @param jyDrawingEditInfo
     * @throws AdscmSystemException
     */
    void auditingEditInfo(JyDrawingEditInfo jyDrawingEditInfo) throws AdscmSystemException;

    /**
     * 发布图纸修订记录
     * @param id
     * @throws AdscmSystemException
     */
    void releaseEditInfo( Long id, JyUser user) throws AdscmSystemException;


    /**
     * 根据图纸ID，查询修订记录
     * @param drawingId
     * @return
     * @throws AdscmSystemException
     */
    List<JyDrawingEditInfo> selectByDrawingId(Long drawingId) throws AdscmSystemException;

    /**
     *  获取上一条或者下一条记录，如果当前是第一条，那么上一条就是最后一条，如果当前是最后一条，那么下一条就是第一条
     * @param currentId 当前ID
     * @param type
     * @return
     * @throws AdscmSystemException
     */
    JyDrawingEditInfo selectLastOrNext(Long currentId,String type) throws AdscmSystemException;

    /**
     * 查看上一个版本的记录，如果没有上一个版本，则看正式版
     * @param currentId
     * @return 返回图纸路径
     * @throws AdscmSystemException
     */
    String selectLastVersion(Long currentId) throws AdscmSystemException;
}
